type MenuType
	'This type is passed to the "MakeMenu" subprogram, in an array form.
	
	'The text that is shown, for example, "Open"
	Text as string
	'A pointer to the sub that should be called if this specific button gets pressed.
	SubPointer as sub ()
end type
type MouseType
	Button	as integer
	Wheel	as integer
	X		as integer
	Y		as integer
end type	
type MouseDataType
	Wheel 		as integer
	Button		as integer
	TextX		as integer
	TextY		as integer
	X			as integer
	Y			as integer
end type




'This defines the special ASCII chars
'Bottom plus code would be the normal plus, without the top.
'Top would be the normal plus, without the bottom.
'Just visualize it and you should understand
const BottomPlusCode = 194
const TopPlusCode = 193
const LeftPlusCode = 180
const RightPlusCode = 195
const TopRightPlusCode = 192
const TopLeftPlusCode = 217
const BottomRightPlusCode = 218
const BottomLeftPlusCode = 191
const HorizontalLine = 196
const VerticleLine = 179

'Fonts (colors of text)
'This needs to be changed if it's in text mode vs GFX mode
const MenuBackgroundFont = rgb(168, 168, 168)
const MenuForegroundFont = rgb(0 , 0, 0)
const FooterBackgroundFont = rgb(0, 168, 168)
const FooterForegroundFont = rgb(0, 0, 0)

'Mouse buttons
const MiddleMouseButton = 4
const LeftMouseButton = 1
const RightMouseButton = 2

'Text and Screen constants
const TextScreenWidth = 80
const TextScreenHeight = 30
const TextWidth = 8
const TextHeight = 16
const ScreenWidth = 640
const ScreenHeight = 480

'Boolean values
const False = 0
const True = not False

'Make the MouseData holder and make it global throughout all modules
common shared MouseData as MouseDataType

#include "fbgfx.bi"
#include "render.bas"
#include "makemenu.bas"
